home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 1 / Cream of the Crop 1.iso / PROGRAM / SCLIB.ARJ / SCL1SAMP.EXE / RECORDF.C < prev    next >
C/C++ Source or Header  |  1992-01-01  |  2KB  |  104 lines

  1. #include <scl1.h>
  2.  
  3. /* This file shows the use of the RecordFile function to create and
  4.    and use a data file organized in records */
  5.  
  6. char buffer[4];     /* data buffer */
  7.  
  8.     /* this data will be stored in RecordFile file */
  9.  
  10. char *test[]={"1","2","3","4","5","6","7"};
  11.  
  12.     /* RecordFile struct */
  13.  
  14. RFData rfd={"TEST.RF",buffer,2,};
  15.  
  16. main()
  17. {
  18. int Mess,i;
  19.  
  20. if(Mess=RecordFile(RF_CREATE,&rfd))     /* create file */
  21.     {
  22.     printf("%i\n",Mess);                /* error */
  23.     exit(-1);
  24.     }
  25.  
  26. for(i=0;i < 7;++i)                      /* add records */
  27.     {
  28.     rfd.Buffer=test[i];
  29.     if(Mess=RecordFile(RF_ADD,&rfd))
  30.         {
  31.         printf("%i\n",Mess);            /* error */
  32.         RecordFile(RF_CLOSE,&rfd);
  33.         exit(-1);
  34.         }
  35.  
  36.     /* read and print file position and size */
  37.  
  38.     printf("Adding record %i, file position: %li, file size: %li\n",i,rfd.FPos,rfd.FSize);
  39.     }
  40.  
  41. printf("Press any key...\n");
  42. GetKey();
  43.  
  44.     /* make rfd.Buffer point to our buffer so that all data is be copied 
  45.        to our buffer. We'll read all records */
  46.  
  47. printf("Records in the order the were saved\n");
  48.  
  49. rfd.Buffer=buffer;
  50. if(RecordFile(RF_FIRST,&rfd)==RF_OK)        /* get first record */
  51.     {
  52.     do                  /* print it */
  53.         {
  54.         printf("%s\n",buffer);
  55.         }while(RecordFile(RF_NEXT,&rfd) != RF_EOF);     /* get next */
  56.     }
  57.  
  58. printf("Press any key...\n");
  59. GetKey();
  60. printf("Records in reverse order\n");
  61.  
  62.        /* get last record */
  63.  
  64. if(RecordFile(RF_LAST,&rfd)==RF_OK)
  65.     {
  66.     do
  67.         {
  68.         printf("%s\n",buffer);
  69.         }while(RecordFile(RF_PREVIOUS,&rfd) != RF_BOF); /* previous */
  70.     }
  71.  
  72. printf("Press any key...\n");
  73. GetKey();
  74. printf("Record=3 modified to A\n");
  75.  
  76.  
  77.     /* look for record with data 3 and modify it */
  78.  
  79. if(RecordFile(RF_FIRST,&rfd)==RF_OK)    /* get first */
  80.     {
  81.     do
  82.         {
  83.         if(strcmp(buffer,"3")==0)       /* equal? */
  84.             {
  85.             strcpy(buffer,"A");         /* modify */
  86.             RecordFile(RF_WRITE,&rfd);  /* write data */
  87.             }
  88.         }while(RecordFile(RF_NEXT,&rfd) != RF_EOF); /* get next */
  89.     }
  90.  
  91.     /* show all records */
  92.  
  93. if(RecordFile(RF_FIRST,&rfd)==RF_OK)
  94.     {
  95.     do
  96.         {
  97.         printf("%s\n",buffer);
  98.         }while(RecordFile(RF_NEXT,&rfd) != RF_EOF);
  99.     }
  100.  
  101. RecordFile(RF_CLOSE,&rfd);  /* close file */
  102. GetKey();
  103. }
  104.